1
ローカルスコープと自動オブジェクトの寿命
AI037Lesson 9
00:00

C++プログラムの壮大な劇場において、オブジェクトは俳優に似ています。一部は全編を通じて舞台に残りますが、大多数の—— ローカルオブジェクト——は一場面だけ現れて永久に消える儚い存在です。本レッスンでは、オブジェクトの 可視性 (スコープ) とその 存在 (ライフタイム)の根本的な違いを確立します。

1. 語彙的スコープと実行時の寿命

名前に対する スコープ はコンパイル時における性質であり、名前が使用可能なプログラムテキストの領域を指します。逆に、 寿命 は実行時における性質であり、オブジェクトが物理的なメモリアドレスを占有する期間を意味します。

ソースコード(スコープ){int i = 42;cout << i;}メモリスタック(寿命)i: 42他のフレームインスタンシエーションブロック終了/ポップ

2. 自動オブジェクト

ブロックが実行中だけ存在するオブジェクトは 自動オブジェクトです。制御が定義部を通過したとき(int n = 0;)で作成され、閉じ括弧(})に到達したときに破棄されます。パラメータは引数によって初期化されるローカル変数として機能します。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>